In general, the invention relates to error correcting data transmission schemes. In particular, the invention relates to retransmission schemes for MIMO systems with two transmit antennas.
In a data transmission or storage system, it is desirable for information, often grouped into packets, to be accurately received at a destination. A transmitter at or near the source sends the information provided by the source via a signal or signal vector. A receiver at or near the destination processes the signal sent by the transmitter. The medium, or media, between the transmitter and receiver, through which the information is sent, may corrupt the signal such that the receiver is unable to correctly reconstruct the transmitted information. Therefore, given a transmission medium, sufficient reliability is obtained through careful design of the transmitter and/or receiver, and of their respective components.
However, the transmitter may be unaware of how the channel will affect a transmitted signal, and may not be able to transmit information in a way that will be effective for a particular channel. For example, the transmitter may be a wireless router, where the channel varies depending on its surroundings. One technique to increase reliability when the transmitter does not have information about the channel is to increase the number of outputs (e.g., transmit antennas) that transmit the same information. Thus, the same information may travel through multiple paths, allowing the receiver or receivers to more reliably estimate the transmitted information. This transmission technique is referred to as transmit diversity, and a system with multiple outputs (e.g., transmit antennas) and multiple inputs (e.g., receiver antennas) is commonly referred to as a multiple-input multiple-output (MIMO) system.
Instead of or in addition to employing a transmit diversity scheme, a transmission/storage system may use an error correction scheme to increase reliability. An error correction scheme functions by adding redundancy to the transmitted information. Therefore, when a reasonably small number of errors occur, there is still enough information to make an accurate determination of the transmitted sequence. The redundancy added to the transmitted information is determined based on an error correction code, such as a Reed-Solomon or Golay code.
One straightforward way to implement an error correction scheme is to use forward error correction (FEC). The transmitter encodes the data according to an error correction code and transmits the encoded information. Upon reception of the data, the receiver decodes the data using the same error correction code, ideally eliminating any errors. Therefore, “decoding” is hereinafter referred to as a method for producing an estimate of the transmitted sequence in any suitable form (e.g., a binary sequence, a sequence of probabilities, etc).
Another way to implement a code for error correction is to use automatic repeat request (ARQ). Unlike FEC, ARQ schemes use error-detecting rather than error-correcting codes. The ARQ transmitter encodes data based on an error-detecting code, such as a cyclic redundancy check (CRC) code. After decoding the data based on the error-detecting code, if an error is detected, the receiver sends a request to the transmitter to retransmit that codeword. Thus, ARQ protocols require a forward channel for communication from transmitter to receiver and a back channel for communication from receiver to transmitter. Ultimately, the receiver will not accept a packet of data until there are no errors detected in the packet.
Finally, FEC and ARQ may be combined into what is known as hybrid automatic repeat request (HARQ). One type of HARQ, referred to as HARQ type-I, typically uses a code that is capable of both error-correction and error-detection. For example, a codeword may be constructed by first protecting the message with an error-detecting code, such as a CRC code, and then further encoding the CRC-protected message with an error-correcting code, such as a Reed-Solomon, Golay, convolutional, turbo, or low-density parity check (LDPC) code. When the receiver receives such a code, it first attempts FEC by decoding the error correction code. If, after error detection, there are still errors present, the receiver will request a retransmission of that packet. Otherwise, it accepts the received vector.
A deficiency in conventional ARQ and HARQ schemes for MIMO and other types of systems is that the same signal is sent during the original transmission and subsequent retransmission(s). In time invariant channels, which are channels with properties that do not substantially change over time, a large number of retransmissions may be necessary to secure a successful transmission. Moreover, the system's diversity gain, the advantageous reduction in necessary transmission power that occurs when a diversity scheme (e.g., transmit diversity) is introduced to a system, may decrease and lead to performance degradation. Thus, it would be desirable to provide novel retransmission schemes that can reliably and efficiently function in time invariant channels.